// 部门列表转为树形结构数据
// 1. pid为空，说明当前部门是一级部门
// 2. pid不为空，判断谁的id与当前部门的pid全等，如果全等说明当前id的部门是pid部门的父级，要给父级部门添加children，这样才是树形结构
// 注意：对于树形结构数据的处理，常用手段就是函数的递归

// 列表转树
// list：待转换的列表
// pid：查找几级部门
export function listToTree(list, pid) {
  const arr = []
  // 遍历list数组
  list.forEach(item => {
    // 查找一级部门
    if (item.pid === pid) {
      // 查找二级甚至多级部门
      // 函数递归(根据item.id查找子部门)
      const children = listToTree(list, item.id)
      // 如果children不为空，说明item有子部门
      if (children.length) {
        // 需要给item添加children属性
        item.children = children
      }
      // 添加到结果树形数组中
      arr.push(item)
    }
  })
  return arr
}
